實作人臉辨識系統的人臉偵測,是使用哈爾特徵的方式,先在官網上下載haarcascade_frontalface_default.xml是OpenCV中已經經過訓練的人臉識別模型文件。
cascPath = "./haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascPath)
CascadeClassifier是Opencv中做人臉偵測時的一個級聯分類器,哈爾特徵是一種可以反映影像灰度變化,利用像素求差值計算的方式,他分為三類:邊緣特徵、線性特徵、中心特徵、對角線特徵,利用有明顯像素梯度變化的影像結構,來進行區分人臉。CascadeClassifier有很多種,以上使用的是偵測人臉部分,有偵測各種身體部位,如眼睛(haarcascade_eye.xml)、全身(haarcascade_fullbody.xml)等。
img = cv.imread('test.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
讀取影像,將影像轉化為灰階。
cv2.rectangle(image, (local[0], local[1]), (local[2], local[3]), (0, 255, 0),4, cv2.LINE_AA)
在將想要進行人臉偵測的圖片,如果成功偵測到人臉就框選出人臉。